home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d3
/
dbmail.arc
/
ML0440.PRG
< prev
next >
Wrap
Text File
|
1988-06-18
|
3KB
|
145 lines
NOTE ML0440 - ADD AND REMOVE CODES FROM THE CODES FIELD FROM SELECTED RECORDS 9/23/84
DO ML0442
SELECT PRIMARY
USE &FDEV
STORE ',,' TO VAR
STORE 17 TO OFSET
STORE LEN(CODES) TO MAX
STORE ',' TO DELIM
@ 14,0 SAY ' NOTE: This routine does NOT check and may insert the duplicate of a code.'
@ 15,0 SAY 'Enter Code Values to ADD to Codes Field of Selected Records.'
DO ML0010
STORE $(VAR,2, LEN(VAR)-1 ) TO AC
STORE VAR#',,' TO ADD
STORE MAX-LEN(AC) TO ACL
@ 14,0
@ 15,0 SAY 'Enter Code Values to DELETE from Codes Field of Selected Records.'
STORE ',,' TO VAR
DO ML0010A
IF .NOT.ADD .AND. V=0
@ 15,0
@ 15,0 SAY 'NO Code Information Entered. Returning to Menu. Press any Key to Continue.'
WAIT
DO ML0441
RETURN
ENDIF
IF OPT=1
DO ML0201
ENDIF
IF OPT=2
DO ML0202
ENDIF
IF OPT=3
SAVE TO ML0440
RELEASE ALL
DO ML0203
RESTORE FROM ML0440
IF .NOT.FILE('MLSUB1.DBF')
DO ML0441
RETURN
ENDIF
ENDIF
SELECT PRIMARY
USE MLSUB1
GOTO BOTTOM
?
? #
?? ' RECORDS SELECTED.'
IF #=0
?
? 'NO Records Selected for Update. Press Any Key to Continue.'
DO ML0441
WAIT
RETURN
ENDIF
?
ACCEPT 'Do you wish to continue? (Y/N) ' TO RESP
IF !(RESP)='N'
DO ML0441
RETURN
ENDIF
SELECT SECONDARY
USE &FDEV INDEX &FDEV
SELECT PRIMARY
GOTO TOP
ERASE
@ 10,10 SAY 'Update Mailing List File for ADD/DELETE Codes.'
@ 14,10 SAY ' 0 Selected Records Processed.'
STORE 0 TO NOUP
DO WHILE .NOT.EOF
STORE STR(RECID,4) TO KEY
SELECT SECONDARY
FIND &KEY
IF #>0
STORE TRIM(CODES) TO VAR
STORE LEN(VAR) TO L
STORE 0 TO N
DO WHILE N<V .AND. VAR#',,'
STORE N+1 TO N
STORE STR(N,1+INT(N/10) ) TO VC
STORE @( CD&VC ,VAR) TO P
STORE L&VC TO R
DO CASE
CASE P>1 .AND. R+P-1<L
STORE $(VAR,1,P)+$(VAR, P+R, L-R-P+1) TO VAR
CASE P=1 .AND. R<L
STORE $(VAR,R,L-R+1) TO VAR
CASE P>1 .AND. R+P-1=L
STORE $(VAR,1,P) TO VAR
CASE P=1 .AND. R=L
STORE ',,' TO VAR
ENDCASE
IF P>0
STORE L-R+1 TO L
ENDIF
ENDDO
IF ADD.AND. L<ACL
IF VAR=',,'
REPLACE CODES WITH DELIM+AC
ELSE
REPLACE CODES WITH VAR+AC
ENDIF
STORE T TO OK
ELSE
STORE .NOT.ADD TO OK
IF .NOT.OK
STORE NOUP+1 TO NOUP
ENDIF
ENDIF
ELSE
STORE F TO OK
STORE NOUP+1 TO NOUP
ENDIF {#>0}
SELECT PRIMARY
REPLACE CP WITH OK
@ 14,10 SAY # USING '9999'
SKIP
ENDDO
IF NOUP>0
ERASE
@ 10,10 SAY 'Unable to Update Mailing List Records with Code Data.'
@ 12,10 SAY 'Turn on Printer. Report to Follow. Press any Key when Printer Ready.'
WAIT
SET CONSOLE OFF
REPORT FORM ML0440 FOR .NOT.CP TO PRINT
SET CONSOLE ON
ENDIF
DO ML0441
RETURN
NSOLE OFF
REPORT FORM ML0440 FOR .NOT.CP TO PRINT
SET CONSOLE ON
ENDIF
DO ML0441
RETURN